package com.example;


import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;

public class MyGreenDao {
    public static void main(String[] args) {
        // 创建Schema对象
        // 构造方法第一个参数为数据库版本号
        // 第二个参数为自动生成的实体类将要存放的位置,前面为我的Android Module的包名
        Schema schema = new Schema(1000, "com.lanou.horo.myapplication.dbdao");
        // 添加需要创建的实体类信息
        addNote(schema);
        addRecommend(schema);
        addFristTopImage(schema);
        addHost(schema);
        addFouse(schema);
        addFrist(schema);
        addHistory(schema);
        addCollection(schema);
        try {
            // 创建实体类.第二个参数填Android Module的路径
            new DaoGenerator().generateAll(schema, "./app/src/main/java");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 添加将要创建的实体类的信息,会根据类名生成数据库的表,属性名生成数据库的字段<p>
     * 当然如果想建多张表,可以创建多个Entity对象
     *
     * @param schema
     */
    private static void addNote(Schema schema) {
        // 指定需要生成实体类的类名,类名确定了那么表名也是根据这个类名来自动命名的,例如下面这个,生成的表名叫做person_entity
        Entity entity = schema.addEntity("PersonEntity");
        // 指定自增长主键
        entity.addIdProperty().autoincrement().primaryKey();
        // 添加类的属性,根据属性生成数据库表中的字段
        entity.addStringProperty("name");
        entity.addStringProperty("phoneNumber");
        entity.addStringProperty("password");
        entity.addByteArrayProperty("userImage");
        entity.addBooleanProperty("isLogin");
        entity.addStringProperty("email");
        entity.addByteArrayProperty("userBg");
        entity.addStringProperty("signatye");


    }

    private static void addRecommend(Schema schema) {
        // 指定需要生成实体类的类名,类名确定了那么表名也是根据这个类名来自动命名的,例如下面这个,生成的表名叫做person_entity
        Entity entity = schema.addEntity("RecommendDbEntity");
        // 指定自增长主键
        entity.addIdProperty().autoincrement().primaryKey();
        // 添加类的属性,根据属性生成数据库表中的字段
        entity.addStringProperty("nickname");
        entity.addStringProperty("title");
        entity.addStringProperty("playUrl");
        entity.addLongProperty("albmid");
        entity.addLongProperty("uid");
        entity.addStringProperty("smallLogo");
    }

    private static void addHost(Schema schema) {
        // 指定需要生成实体类的类名,类名确定了那么表名也是根据这个类名来自动命名的,例如下面这个,生成的表名叫做person_entity
        Entity entity = schema.addEntity("HostDbEntity");
        // 指定自增长主键
        entity.addIdProperty().autoincrement().primaryKey();
        // 添加类的属性,根据属性生成数据库表中的字段
        entity.addStringProperty("nickname");
        entity.addLongProperty("uid");
        entity.addStringProperty("smallLogo");
    }

    //关注页面的数据表
    private static void addFouse(Schema schema) {
        // 指定需要生成实体类的类名,类名确定了那么表名也是根据这个类名来自动命名的,例如下面这个,生成的表名叫做person_entity
        Entity entity = schema.addEntity("FousDbEntity");
        // 指定自增长主键
        entity.addIdProperty().autoincrement().primaryKey();
        // 添加类的属性,根据属性生成数据库表中的字段

        entity.addStringProperty("focusonTitle");
        entity.addStringProperty("focusonItemTopContent");
        entity.addStringProperty("smallLogo");

        entity.addStringProperty("userImg");
        entity.addStringProperty("focusonItemBottonTitle");
        entity.addStringProperty("focusonItemBottonContent");

    }


    //关注页面的数据表
    private static void addFrist(Schema schema) {
        // 指定需要生成实体类的类名,类名确定了那么表名也是根据这个类名来自动命名的,例如下面这个,生成的表名叫做person_entity
        Entity entity = schema.addEntity("FristDbEntity");
        // 指定自增长主键
        entity.addIdProperty().autoincrement().primaryKey();
        // 添加类的属性,根据属性生成数据库表中的字段

        entity.addStringProperty("recommendedItemTitle");//一级标题

        entity.addStringProperty("rdItemContentImgF");
        entity.addStringProperty("recommendedItemContentF");

        entity.addStringProperty("rdItemContentImgS");

        entity.addStringProperty("recommendedItemContentS");

        entity.addStringProperty("rdItemContentImgT");
        entity.addStringProperty("recommendedItemContentT");

    }

    private static void addFristTopImage(Schema schema) {
        Entity entity = schema.addEntity("FristTopDbEntity");
        // 指定自增长主键
        entity.addIdProperty().autoincrement().primaryKey();
        // 添加类的属性,根据属性生成数据库表中的字段
        entity.addStringProperty("pic");//一级标题
        entity.addStringProperty("name");
    }

    private static void addHistory(Schema schema) {
        Entity entity = schema.addEntity("HistoryEntity");
        // 指定自增长主键
        entity.addIdProperty().autoincrement().primaryKey();
        // 添加类的属性,根据属性生成数据库表中的字段
        entity.addStringProperty("nickname");
        entity.addStringProperty("title");
        entity.addStringProperty("playUrl");
        entity.addLongProperty("albmid");
        entity.addLongProperty("trackId");
        entity.addStringProperty("times");
        entity.addStringProperty("smallLogo");
    }

    private static void addCollection(Schema schema) {
        Entity entity = schema.addEntity("CollectionDBEntity");
        // 指定自增长主键
        entity.addIdProperty().autoincrement().primaryKey();
        // 添加类的属性,根据属性生成数据库表中的字段
        entity.addStringProperty("nickname");
        entity.addStringProperty("title");
        entity.addStringProperty("playUrl");
        entity.addLongProperty("albmid");
        entity.addLongProperty("trackId");
        entity.addStringProperty("times");
        entity.addStringProperty("smallLogo");
    }




}
